#表示外星人的类
import pygame.image
from pygame.sprite import Sprite
'''
    Alien 类不需要一个在屏幕上绘制外星人的方法，因为我们将使用一个Pygame 编组方法，
    自动在屏幕上绘制编组中的所有元素。
'''

class Alien(Sprite):


    def __init__(self,ai_game):
        #初始化外星人图片，并设置位置
        super().__init__()
        self.screen=ai_game.screen
        self.settings=ai_game.settings

        #加载图片，设置rect属性
        #外星人宽度长宽30，30
        self.image = pygame.transform.scale(
            pygame.image.load('images/alien.bmp').convert_alpha()
            , (30, 30))
        self.rect=self.image.get_rect()

        #设置rect放置在左上角
        self.rect.left=0
        self.rect.top=0

        #水平位置需要精确存储
        self.x=float(self.rect.x)

    #移动外星人
    def update(self):
        #向右移动
        self.x+=(self.settings.alien_speed*self.settings.fleet_direction)
        #设置到rect的属性中
        self.rect.x=self.x

    #检测是否碰撞到边缘
    def check_edges(self):
        '''
            如果外星人位于屏幕边缘，就返回True
        :return:
        '''
        screen_rect=self.screen.get_rect()
        if self.rect.right>=screen_rect.right or self.rect.left<=0:
            return True